import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator

# 模型名称
models = ['CT Model', 'RT Model']
# CT模型的各指标分数
rt_scores = [0.9066, 0.9025, 0.9095, 0.9055]
# RT模型的各指标分数
ct_scores = [0.9452, 0.9361, 0.9511, 0.9471]

# 柱状图宽度
bar_width = 0.35
# 横坐标位置
index = np.arange(len(['Accuracy', 'Recall', 'Precision', 'F1']))

# 设置图表大小，这里将宽度设置为 10 英寸，高度设置为 6 英寸
plt.figure(figsize=(10, 6))

# 绘制 RT 模型的柱子
plt.bar(index + bar_width, rt_scores, width=bar_width, label='RT Model', color='g')
# 绘制 CT 模型的柱子
plt.bar(index, ct_scores, width=bar_width, label='CT Model', color='r')

# 添加 x 轴标签
plt.xticks(index + bar_width / 2, ['Accuracy', 'Recall', 'Precision', 'F1'])
# 添加 y 轴标签
plt.ylabel('Score')
# 添加图表标题
plt.title('')

# 将图例位置修改为右上角
plt.legend(bbox_to_anchor=(0.85, 1.1), loc='upper left')

# 获取当前坐标轴对象
ax = plt.gca()
# 设置顶部和右侧边框颜色为透明
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')

# 设置 y 轴刻度间隔为 0.02（可根据需要调整）
y_major_locator = MultipleLocator(0.05)
ax.yaxis.set_major_locator(y_major_locator)

# 设置 y 轴的范围，从 0.5 开始，上限根据数据最大值适当调整
max_score = max(max(rt_scores), max(ct_scores))
plt.ylim(0.8, max_score + 0.05)

# 显示图表
plt.show()